 /*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package manejadores;

import entidades.Ingeniero;
import interfaz.Entidad;
import interfaz.Manejador;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import persistencia.Conexion;

/**
 *
 * @author Snailin
 */
public class ManejadorDeIngeniero implements Manejador {

    private Conexion conexion=null;
    private static ManejadorDeIngeniero instancia=null;
    private ResultSet rs=null;
    private PreparedStatement stmt=null;
    private ArrayList<Ingeniero>ingenieros=null;

    public static ManejadorDeIngeniero getInstancia() {
        if(instancia==null){
            instancia=new ManejadorDeIngeniero();
        }
        return instancia;
    }

    private ManejadorDeIngeniero(){
        conexion=Conexion.getInstancia();

    }

    public ArrayList<Ingeniero>getIngenieros(){
        ingenieros=new ArrayList<Ingeniero>();
        
        String sql="SELECT * FROM ingeniero ";
      
         stmt=conexion.hacerEnunciado(sql);
         rs=conexion.hacerConsulta(sql);
        try {
            while (rs.next()) {
            Ingeniero ingeniero=new Ingeniero(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4),rs.getString(5), rs.getString(6), rs.getString(7), rs.getString(8), rs.getString(9));
            ingenieros.add(ingeniero);

            }
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDeIngeniero.class.getName()).log(Level.SEVERE, null, ex);
        }
        return ingenieros;

    }

    public int agregar(Entidad ingeniero) {
             int fila=0;
        String sql="INSERT INTO ingeniero (id_ingeniero, nombre, apellido, cedula, telefono, celular, sexo, direccion, zona_cargo)VALUES(0, ?, ?, ?, ?, ?, ?, ?, ?)";
        stmt=conexion.hacerEnunciado(sql);
        try {
            stmt.setString(1, ((Ingeniero)(ingeniero)).getNombre());
            stmt.setString(2, ((Ingeniero)(ingeniero)).getApellido());
            stmt.setString(3, ((Ingeniero)(ingeniero)).getCedula());
            stmt.setString(4, ((Ingeniero)(ingeniero)).getTelefono());
            stmt.setString(5, ((Ingeniero)(ingeniero)).getCelular());
            stmt.setString(6, ((Ingeniero)(ingeniero)).getSexo());
            stmt.setString(7, ((Ingeniero)(ingeniero)).getDireccion());
            stmt.setString(8, ((Ingeniero)(ingeniero)).getZonaCargo());
          
  fila=stmt.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDeProyecto.class.getName()).log(Level.SEVERE, null, ex);
        }
       return fila;
    }
    public int eliminar(int id) {
        int fila=0;
        String sql="DELETE FROM ingeniero WHERE id_ingeniero = ?";
        stmt= conexion.hacerEnunciado(sql);
       try{
            stmt.setInt(1, id);
            fila=stmt.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDeProyecto.class.getName()).log(Level.SEVERE, null, ex);
        }
       return fila;
    }

    public int modificar(Entidad ingeniero, int id) {
        int fila=0;
        String sql="UPDATE ingeniero SET id_ingeniero = 0 , nombre = ?, apellido = ? , cedula = ? , telefono = ? , celular = ? , sexo = ? , direccion = ? , zona_cargo = ? WHERE id_ingeniero = ? ";
        stmt= conexion.hacerEnunciado(sql);
       try{
             stmt.setString(1, ((Ingeniero)(ingeniero)).getNombre());
            stmt.setString(2, ((Ingeniero)(ingeniero)).getApellido());
            stmt.setString(3, ((Ingeniero)(ingeniero)).getCedula());
            stmt.setString(4, ((Ingeniero)(ingeniero)).getTelefono());
            stmt.setString(5, ((Ingeniero)(ingeniero)).getCelular());
            stmt.setString(6, ((Ingeniero)(ingeniero)).getSexo());
            stmt.setString(7, ((Ingeniero)(ingeniero)).getDireccion());
            stmt.setString(8, ((Ingeniero)(ingeniero)).getZonaCargo());
            stmt.setInt(9, id);
            fila=stmt.executeUpdate();
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDeProyecto.class.getName()).log(Level.SEVERE, null, ex);
        }
       return fila;
    }

    public int getId(String nombre,String apellido){
       int id=0;
        String sql ="SELECT id_ingeniero FROM ingeniero WHERE nombre= '"+nombre+"' AND apellido = '"+apellido+"'";


        stmt=(PreparedStatement)conexion.hacerEnunciado(sql);
        rs=conexion.hacerConsulta(sql);
        try {
            while (rs.next()) {
                id=Integer.parseInt (rs.getString(1));
            }
        } catch (SQLException ex) {
            Logger.getLogger(ManejadorDeSupervisor.class.getName()).log(Level.SEVERE, null, ex);
        }



       return id;
    }
}
